#define _CRT_SECURE_NO_WARNINGS 1

#include<iostream>
#include"PriorityQueue.h"

template<class T>
class Less
{
public:
    bool operator()(const T& x, const T& y)
    {
        return x < y;
    }
};

template<class T>
class Greater
{
public:
    bool operator()(const T& x, const T& y)
    {
        return x > y;
    }
};

void TestPrioirtyQueue()
{
    lwd::priority_queue<int> q;
    q.push(9);
    q.push(8);
    q.push(7); 
    q.push(6);
    q.push(5);
    q.push(4);

    while (!q.empty())
    {
        cout << q.top() << " ";
        q.pop();
    }
    cout << endl;
}

void TestPrioirtyQueue1()
{
    lwd::priority_queue<int, vector<int>, Greater<int>> q;
    q.push(9);
    q.push(8);
    q.push(7);
    q.push(6);
    q.push(5);
    q.push(4);

    while (!q.empty())
    {
        cout << q.top() << " ";
        q.pop();
    }
    cout << endl;
}

int main()
{
    /*TestPrioirtyQueue();
    TestPrioirtyQueue1();*/
    return 0;
}